#pragma once
#include "imodcontainer.h"
#include <boost/shared_ptr.hpp>
class ModContainer :
	public IModContainer
{
public:
	ModContainer(string libraryPath);
	~ModContainer(void);
	virtual bool IsModLoaded();
	virtual IMod *GetModInterface();
	virtual string GetModName();
protected:
	bool TryLoadLibrary();
	void UnloadLibrary();
	bool Validate();
private:
	boost::shared_ptr<bool> m_pLibraryLoadFlag;
	string m_strLibraryPath;
	IMod *m_pMod;
	void *m_pLibraryHandle;
};

